googologywikiaorg-20200223-history
User blog:Rgetar/Improvement of my multi-dimensional array notation
Today I came up with how to simplify my multi-dimensional array notation with <> separators. My older notation For my Xa family of functions, array notation with <> separators, generalized Veblen function see blogs: 1, 2, 3. <> separators were inspired by BEAF separators (): (n) means transition through one n-dimensional space. But to designate transition through many spaces we need many () separators. For example, transition through 3 planes is designated as (2)(2)(2). <> separators allow to designate transition through many spaces (even of non-equal dimensionality) as one <> separator. For example, (2)(2)(2) = <3,0,0>; (1)(2)(2)(2) = <3,1,0>. Initially I used this notation for my Xa family of functions, but later I realized that it may be used for designation of any arrays of any entities. Particularly, I used it for arrays of variables of Veblen function and its multi-dimensional (multi-trimensional etc.) extension. New notation I noticed that we often need to add and subtract <> separators. Today I came up with the idea to designate numbers of spaces from the beginning of an array instead of difference of numbers of spaces between elements of the array, so we no more need to add and subtract <> separators. So, now <> separators are just "coordinates" of an element in the array. <0> we may omit (as in older notation): X<0> = X So, the corresponding element is the last element of array with zero coordinates. But now comma (,) is no more <1>: comma is still separator between two adjacent elements, whereas <1> now is coordinates of the second right element (including zero elements). Zero elements may be omitted: we may omit all 0. Elements of an array should be written in order of descending of theirs coordinates, and first we compare more left coordinates, then more right. Shortly: we write all non-zero elements of an array, and after each element we write its coordinates in this array inside <>. Coordinates are themselves may be arrays written same way. Xa Rule 3 for successor leo(Xn*). Old version: X·a = X*-1<1>(X'; 1; a) New version: X·a = X*-1(X'; 1; a) (Rules 1, 2 are without changes). General rules are without changes, but definition of (X·a; {βn}) changed. Old version: (X·a; {βn}) = lest(X*; β0)<-β1+leo(X'*)>(X"; 1; a)<(X'·a; {βn+1})> New version: (X·a; {βn}) = lest(X*; β0)(X"; 1; a)<(X'·a; {βn+1})> Veblen function My definition of Veblen function is without changes, but a lot of things become more clear, including those from 3 blog. Now designation of extended Veblen function using <> separators is just a modified form of the Schutte Klammersymbolen. For example, φ(α1<β1>α2<β2>α3<β3>α4<β4>α5<β5>) = \(\begin{pmatrix}\alpha_1 & \alpha_2 & \alpha_3 & \alpha_4 & \alpha_5 \\\beta_1 & \beta_2 & \beta_3 & \beta_4 & \beta_5 \end{pmatrix}\) (Here βn are ordinals. But in general case they may be arrays of ordinals). In old notation it would be φ(α1<β1>α2<β2>α3<β3>α4<β4>α5<β5>) = \(\begin{pmatrix}\alpha_1 & \alpha_2 & \alpha_3 & \alpha_4 & \alpha_5 \\\beta_5+\beta_4+\beta_3+\beta_2+\beta_1 & \beta_5+\beta_4+\beta_3+\beta_2 & \beta_5+\beta_4+\beta_3 & \beta_5+\beta_4 & \beta_5 \end{pmatrix}\) Coordinates of array elements In old notation coordinates of array elements were not visible, but in new notation coordinates are just inside <> separators. sonze(X; Y) For example, for array X = α1<β1>α2<β2>α3<β3>α4<β4>α5<β5> sonze(X; Y) is set of non-zero values of elements αn of part Y (as in old notation). sonze(X; X) = {αn ≠ 0} soconze(X; Y) For array X = α1<β1>α2<β2>α3<β3>α4<β4>α5<β5> soconze(X; Y) is set of βn for non-zero elements αn of part Y. soconze(X; X) = {βn} for all n such as αn ≠ 0 isonze(X; Y) isonze(X; Y) is just set of all non-zero elements of part Y of array X, including those inside of all <> separators not following zeros. Parts We no more need "parts" in sonze, soconze and isonze. For example, X = X1YX2 Now, if we "cut" part (Y) of array (X), coordinates of its elements will not be changed. So we can redefine sonze, soconze and isonze: We can remove "parts" and use Y as array, not just a "part". And now we can write sonze(Y), soconze(Y), isonze(Y) instead of sonze(X; Y), soconze(X; Y), isonze(X; Y), and sonze(X), soconze(X), isonze(X) instead of sonze(X; X), soconze(X; X), isonze(X; X). cofrewnzeloi(X) For example, X = α1<β1>α2<β2>α3<β3>α4<β4>α5<β5> αn ≠ 0 cofrewnzeloi(X) is just β1. If X = 0 then cofrewnzeloi(X) = 0. Positional number systems (See Less-than greater-than separators in decimal and ω-ry number systems blog). For example, in new notation 1<1<100>>10 = 1<1<100>>1<1> is googolplex ten. In old notation 1<1<100>>10 = 1<1<100>>1<1> is ten googolplexes ten, and googolplex ten cannot be written in such a short form without arithmetic operations. Conclusion From now on I probably will use this new notation instead of the old one. Category:Blog posts